package agenda;

import java.io.Serializable;

public abstract class Entrada implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 7527756008865097133L;
    public static final Entrada NULL = new Persona();
    private String nombre;
    private String nif;

    public Entrada() {
	super();
    }

    public Entrada(String nombre, String nif) {
	this.nombre = nombre;
	this.nif = nif;
    }

    public String getNombre() {
        return nombre;
    }

    public String getNif() {
        return nif;
    }

    @Override
    public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
	result = prime * result
		+ ((nif == null) ? 0 : nif.hashCode());
	return result;
    }

    @Override
    public boolean equals(Object obj) {
	if (this == obj)
	    return true;
	if (obj == null)
	    return false;
	if (getClass() != obj.getClass())
	    return false;
	Entrada other = (Entrada) obj;
	if (nombre == null) {
	    if (other.nombre != null)
		return false;
	} else if (!nombre.equals(other.nombre))
	    return false;
	if (nif == null) {
	    if (other.nif != null)
		return false;
	} else if (!nif.equals(other.nif))
	    return false;
	return true;
    }

    @Override
    public String toString() {
	return "Entrada [nombre=" + nombre + ", nif=" + nif + "]";
    }

    public abstract String toXML();
}